// 时间选择
App.directive('edDatePicker', [function () {
    return {

        restrict: 'A',
        require: '?ngModel',

        link: function (scope, elem, attrs, ngModelController) {

            var format = attrs.edDateFormat || 'yyyy-mm-dd';
            var startDate = attrs.edStartDate || '';
            var endDate = attrs.edEndDate || '';

            $(elem).datepicker({
                format: format,
                language: 'zh-CN',
                orientation: "top",
                startDate: startDate,
                endDate: endDate,
                autoclose: true,
                todayHighlight: true
            });

            if (ngModelController) {
                ngModelController.$render = function(manualRender) {
                    if (!manualRender && ngModelController.$viewValue) {
                        var value = moment(ngModelController.$viewValue).format(format.toUpperCase());
                        if (value != ngModelController.$viewValue) {
                            ngModelController.$setViewValue(value);
                            ngModelController.$render(true);
                            return;
                        }
                    }
                    //$(elem).val(ngModelController.$viewValue);
                    $(elem).datepicker('setDate', ngModelController.$viewValue);
                }
            }

        }

    };
}]);

App.directive('edTimePicker', [function () {
    return {

        restrict: 'A',
        require: '?ngModel',

        link: function (scope, elem, attrs, ngModelController) {
            $(elem).datetimepicker.dates['zh-CN'] = {
                days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"],
                daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"],
                daysMin:  ["日", "一", "二", "三", "四", "五", "六", "日"],
                months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
                monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
                today: "今天",
                suffix: [],
                meridiem: ["上午", "下午"]
            };
            var format = attrs.edDateFormat || 'yyyy-mm-dd hh:ii:ss';
            var option = {
                format: format,
                language: 'zh-CN',
                orientation: "right",
                autoclose: true,
                todayHighlight: true
            };
            if (format.indexOf('hh') >= 0 && format.indexOf('ii') < 0) {
                option.minView = 1;// minView 默认值：0, 'hour' 日期时间选择器所能够提供的最精确的时间选择视图。
            }
            if (format.indexOf('dd') < 0) {
                option.startView = 1;
            }
            $(elem).datetimepicker(option)
                .on('show', function(ev){
                    if (option.startView == 1) {
                        $('.datetimepicker:visible').find('thead th').height(1).css('visibility', 'hidden').empty().html('');
                    }
                });

            if (ngModelController) {
                ngModelController.$render = function(manualRender) {
                    if (!manualRender && ngModelController.$viewValue) {
                        var format2 = format.toUpperCase().replace('II', 'mm');// 格式不一样
                        var value = moment(ngModelController.$viewValue).format(format2);
                        if (value != 'Invalid date' && value != ngModelController.$viewValue) {
                            ngModelController.$setViewValue(value);
                            ngModelController.$render(true);
                            return;
                        }
                    }
                    $(elem).val(ngModelController.$viewValue);
                }
            }
        }

    };
}]);

App.directive('edMonthPicker', ['$parse', function ($parse) {
    return {

        restrict: 'A',

        link: function (scope, elem, attrs) {
            $(elem).datetimepicker.dates['zh-CN'] = {
                days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"],
                daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"],
                daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"],
                months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
                monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
                today: "今天",
                suffix: [],
                meridiem: ["上午", "下午"]
            };
            $(elem).datetimepicker({
                format: 'yyyy-mm',
                language: 'zh-CN',
                orientation: "right",
                autoclose: true,
                startView: 3,
                minView: 3
            });
            $('.datetimepicker-years').find('table').css('width','200px');
            $('.datetimepicker-months').find('table').css('width','200px');
        }

    };
}]);